﻿using StardewModdingAPI;
using StardewModdingAPI.Events;
using StardewValley;
using StardewValley.Quests;

namespace WorseGame.Common
{
    public class 开局日志(IMonitor 监视器, IModHelper 助手)
    {
        private readonly IMonitor 监视器 = 监视器;
        private readonly IModHelper 助手 = 助手;
        private bool 已显示日志 = false;

        public void Initialize()
        {
            助手.Events.GameLoop.DayStarted += 每日开始时;
            助手.Events.GameLoop.SaveLoaded += 存档加载时;
        }

        private void 存档加载时(object? sender, SaveLoadedEventArgs e)
        {
            已显示日志 = 助手.Data.ReadSaveData<string>("WorseGame_已显示开局日志") == "true";
        }

        private void 每日开始时(object? sender, DayStartedEventArgs e)
        {
            if (!已显示日志)
            {
                显示开局债务日志();
            }
        }

        private void 显示开局债务日志()
        {
            添加日志条目("农场债务信息", $"亲爱的{Game1.player.Name}：\n\n当你继承这个农场时，它也背负着沉重的债务。\n\n债务详情：\n• 总债务：100,000,000g\n• 月还款：10,000g  \n• 利　息：0.05%\n重要提醒：\n• 每月1号需要偿还月供\n• 按F7可以查看实时债务信息\n• 如果无法偿还，会受到惩罚\n• 努力工作，慢慢还清债务\n\n这片土地有着无限的潜力，相信你一定能让它重现往日的辉煌。");
            助手.Data.WriteSaveData("WorseGame_已显示开局日志", "true");
            已显示日志 = true;
        }
        private static void 添加日志条目(string 标题, string 内容)
        {
            if (!Game1.player.questLog.Any(q => q?.questTitle?.Contains(标题) == true))
            {
                var 日志条目 = new Quest
                {
                    questTitle = 标题,
                    currentObjective = 内容,
                };
                Game1.player.questLog.Add(日志条目);
            }
        }
    }
}